package ziface

import "net"

//定义链接模块的抽象层
type IConnection interface {
	//启动链接
	Start()
	//停止链接
	Stop()
	//获取socket
	GetTCPConnection() *net.TCPConn
	//获取链接ID
	GetConnID() uint32 //无符号整型
	//获取远程客户端的TCP状态 IP port
	RemoteAddr() net.Addr
	//发送数据，将数据发送给客户端
	SendMsg(msgid uint32, data []byte) error
}

/*
该接口的一些基础方法，代码注释已经介绍的很清楚，这里先简单说明一个HandFunc这个函数类型，这个是所有conn链接在处理业务的函数接口，
第一参数是socket原生链接，第二个参数是客户端请求的数据，第三个参数是客户端请求的数据长度。
这样，如果我们想要指定一个conn的处理业务，只要定义一个HandFunc类型的函数，然后和该链接绑定就可以了。
*/
//定义一个统一处理链接业务的接口
// type HandFunc func(*net.TCPConn, []byte, int) error //括号内(链接、数据内容、长度)
